Method and system for simulation of a thread in computer graphics simulations

ABSTRACT

Method for describing a thread as a geometric object in a three dimensional computer graphics system. The method comprises generating a set of fixture points defining points in space through which the thread passes, generating a set of one or more segments representing the thread between adjacent fixture points, linking each segment to a pair of fixture points, one at each end of the respective segment, and describing the geometrical properties of each segment. The segments and fixture points are preferably defined as objects containing functions and variables allowing the exchange of data between the various objects. The method allows for the calculation of the shape of the thread based on a calculation of the shape of each individual segment. A simulation system utilizing the method receives update information such as control signals, over an input interface and includes instructions on a storage media and a processor for calculating the shape of the thread and outputting the result over an output interface.

[0001] The invention relates to a method for describing a thread as ageometric object in a three dimensional computer graphics system. Theinvention also relates to a computer simulation system employing saidmethod for simulation of systems involving a thread. It should beunderstood that the term thread will be used throughout this descriptionfor convenience, but that it is intended to cover other terms including,but not limited to, suture, wire, cable, rope etc, to the extent thatsuch objects can be described in a computer graphics system inaccordance with the method claimed.

[0002] Training for surgical procedures such as sewing together two ormore flexible objects, has traditionally been limited to training onhuman cadavers or animals. In recent years computer simulators have beendeveloped in order to overcome limitations in traditional training andincrease accessibility for health care personnel and students learningsurgical skills, as well as experienced surgeons maintaining skills orlearning new methods based on development in technology.

[0003] An example of a surgical simulator is described in U.S. Pat. No.5,766,016. The simulator provides both visual and tactile feedback.Visual feedback is provided through a graphics computer driving a stereodisplay, and a set of optics mimicking a surgical microscope. Tactilefeedback is provided through an instrument simulating a surgical tooland connected through levers and hinges to servo-motors generating aresistive force along any direction. The simulator preferably simulatesocular surgery and displays a model of an eye. The model of an eye isproduced by first photographing components of the eye, texture mappingthe photographs and developing a mathematical model of the eye. There isno description of how surgical threads or sutures could be modeled.

[0004] U.S. Pat. No. 4,321,047 discloses an apparatus for teachingsurgical knot tying techniques. A flexible tube made of material whichsimulates various human vessels and ducts is positioned between the armsof a support frame. Inside the tube are spring wires, which are strungunder tension between the arms of the support frame. A detecting deviceis connected to the wires, which will generate various kinds of signalswhen the wires make contact with one another. The student loops a pieceof surgical thread around the tube and tightens the loop until wirestouch, thus indicating that a certain force has been applied to the tubeby the loop. No computer simulation is involved.

[0005] U.S. Pat. No. 5,956,040 discloses a simulation system usingcomputer graphics and a model expression method capable of givingreality to the deformation of a model described by using polygons.Simulation of the behavior of a surgical thread is not described.

[0006] The above mentioned publications do not describe suturesimulation, or simulation of surgical thread, on computers. Because ofthe importance of the ability of a simulator to accurately portray theactual conditions under which a surgical procedure is performed, andbecause of the wide range and number of such procedures involvingsutures, a sufficiently exact modeling of a surgical thread in asurgical simulator is of great importance.

[0007] It should, however, be pointed out that although the aboveexamples involve surgical simulation, and although the embodimentdescribed herein concerns such an application, the present invention mayeasily be adapted for other purposes. Examples include sewing in atailoring process, simulation or virtual reality systems where threadsor cables are to be modeled, or computer graphics or animation of a moregeneral nature, such as computer games or movies, where a thread or acable is to be visualized in a natural and convincing way. It shouldthen be clear that the term simulation-system is not limited totraditional simulators, but also includes systems for numericalsimulation of engineering problems involving threads or cables, and alsocomputer graphics workstations for generating a computer graphicsrepresentation that e.g. will be played back as a movie or apresentation.

[0008] “Augmented Lagrangian and Operator-Splitting Methods in NonlinearMechanics”, by Roland Glowingski and Patrick Le Tallec, Society forIndustrial and Applied Mathematics, Philadelphia, 1989, chapter 8, p.259-286, discusses numerical modeling of flexible and inextensible rods,particularly in the context of flexible pipelines used in off-shoreproduction. The numerical modeling described could be adapted for usewith the present invention. The above mentioned chapter as well as thealgorithms described in chapter 3 of the same reference are herebyincorporated by reference.

[0009] The numerical representation of a thread, cable, wire or thelike, particularly if it interacts with other objects, requiresextensive computational effort. This can be a critical factor innumerical simulation or computer graphics, especially if the simulationis to run in real time, such as in a simulator. The invention is basedon a data structure that overcomes this bottleneck and allows for rapiddescription and update of a thread in a computer graphics environment.

[0010] The data structure models the thread as a set of segmentsconnected to each other by fixture points that represent points throughwhich the thread passes. The shape of the thread is then described bydescribing the shape of each segment independently. The update of themodel is based on passing information from one segment to the next andon moving, adding or deleting fixture points.

[0011] More particularly the description of a thread includes thegeneration of a set of fixture points defining points in space throughwhich the thread passes, and the generation of a set of one or moresegments representing the thread between adjacent fixture points. Eachsegment is linked to a pair of fixture points, one at each end of therespective segment, and the geometrical properties of each segment aredescribed.

[0012] In order to simplify the model further, segments of the threadthat pass through other objects may be described as straight linesbetween fixture points attached to the surface of the object throughwhich the thread passes, at the respective points where the threadenters or leaves the object. Such a segment will henceforth be referredto as an embedded segment. Other segments will be referred to as freesegments.

[0013] The actual geometrical description of a segment is preferablydone as a reference to a curve definition including the numericaldescription of the shape of the curve. This can be done by defining thesegment as an object in an object oriented computer language andincluding in this object a pointer to an additional object that includesthe necessary curve parameters and algorithms for calculating the shapeof the curve. These additional objects will be referred to as curveobjects. For a given segment, the curve instance (i.e. the result of thecurve shape calculation) will then be stored in the curve object, whichalso includes the necessary functions to calculate this curve instancefrom information received from the segment object. The curve of anembedded segment is a straight line between two fixture points, whilethe curve of a free segment is calculated based on the position of thefixture points at each end of the segment, gravity vectors, and anyother parameters such as flexibility of the thread, tangent of the curvethrough the fixture point, length of the segment, distance betweenfixture points etc.

[0014] Preferably the fixture points as well as any other geometricalobjects are similarly described in an object oriented manner. Thesegments will then include pointers to two fixture points, and thefixture points will include pointers to segments and possibly to another geometrical object and a variable containing the position of thefixture point.

[0015] Additional data and functions of the various objects will bedescribed in greater detail below.

[0016] In a computer simulation system the data structure will be storedas data and instructions on a data storage accessible by a processor.The processor will be able to, based on the data and the instructions,generate a three dimensional numerical model of the thread and anyobjects with which the thread interacts and to generate a videorepresentation of this numerical model.

[0017] The simulation system also includes an input interface forreceiving control signals representing manipulation of the simulationsystem and an output interface for sending the generated videorepresentation to a video display.

[0018] The invention also relates to a computer program comprisingprogram instructions for performing the steps of the method. Such aprogram could be embodied as a computer program product stored on acarrier such as a CD ROM or any other storage medium, or as a propagatedsignal carrying the information that makes up such a computer program.

[0019] The defining features of the invention are presented in theattached independent claims, with the dependent claims describingadditional features.

[0020] The invention will now be described in greater detail by way ofexamples and with reference to the attached drawings.

[0021]FIG. 1 shows the general structure of a computer simulation systemaccording to the invention,

[0022]FIG. 2 shows an example of a computer simulation problem to whichthe invention can be applied,

[0023]FIG. 3a shows the data structure of the invention as applied tothe example of FIG. 2,

[0024]FIG. 3b shows the general data structure according to theinvention,

[0025]FIG. 4 illustrates an example of the step by step update of thetopology of the model during a sewing process.

[0026] Reference is first made to FIG. 1, wherein is illustrated thegeneral structure of a computer simulation system according to theinvention. The system receives input data through an input interface 1.This input can come from a keyboard and a mouse, or from more dedicatedsimulation equipment simulating various tools or controls. It can alsocome from external storage means or a communications line or a network.Further the system comprises a processor 2 and storage means 3. Theprocessor 2 is capable of accessing data and instructions stored on thestorage means 3 and operate on the stored data as well as the input datain accordance with the instructions. The results of the operationsperformed on basis of the instructions can be stored on the storagemeans 3 and/or delivered to output interface 4. The results of theoperations performed by the processor will most often at least include avideo representation of the simulation to be delivered to a display,such as a video monitor or video display goggles, but may also includeforce feedback or tactile feedback information to be delivered to theinput means connected to the input interface.

[0027] The processor 2 of the simulation system may be the CPU of apersonal computer or workstation, but it may also be the combination ofseveral processor circuits, including special graphics processors. Thestorage means 3 may in principle include any kind of storage means, suchas a hard disk, a CD-ROM, memory circuits etc.

[0028] Reference is now made to FIG. 2. Here is shown an example of acomputer simulation problem to which the invention will be applied. Theexample is drawn from the field of surgical simulation for training ofphysicians. In addition to a thread 10, the figure shows a number ofgeometrical objects with which the thread interacts. In this examplethese objects include a needle 12 attached to the end of the thread andthat is being held by a tool 14. Also shown are two flexible tissues 16,18 which it is the purpose to sew together during the simulation. Thegeometrical description of these additional objects is not part of theinvention, and will not be discussed in detail. However, it will benatural to describe the needle 12 as a stiff curve (i.e. a curve thatcan not change shape during the simulation), to describe the tool 14 asa stiff object possibly by describing its bounding surfaces, and todescribe the tissues 16, 18 as flexible objects again geometricallyrepresented by their bounding surfaces. If the tissue has a wall likeshape, for instance the walls in an artery tube, it can be described bytwo surfaces, one outer surface 16 a, 18 a and one inner surface 16 b,18 b.

[0029] In order to describe this situation in accordance with theinvention, fixture points are introduced. A minimum of six fixturepoints are required for the modeling of the situation in the figure. Itshould be noted, though, that they will be introduced during thesimulation as is described below with reference to FIG. 4. One fixturepoint 20 is positioned where the needle is attached to the thread, twofixture points 22, 24 where the thread enters and leaves the firstflexible tissue 16, two fixture points 26, 28 where the thread entersand leaves the second flexible tissue 18, and one fixture point at theend of the thread 29. This results in a first free segment 30 betweenthe needle fixture point 20 and the first tissue wall fixture point 22,an embedded segment 32 between the tissue wall fixture points 22, 24, afree segment 34 between the inner tissue wall fixture point 24 of thefirst tissue 16 and the inner tissue wall fixture point 26 of the secondtissue 18, an embedded segment 36 again between the two fixture points26, 28 of the second tissue 18, and a free segment 38 between the outertissue wall fixture point 28 and the end fixture point 29.

[0030] Note that there is nothing in the data structure that preventsthe inclusion of additional fixture points subdividing the freesegments, but that none are included in this example.

[0031]FIG. 3a illustrates the data structure for a part of the problemillustrated in FIG. 2. The data structure will be described as objectsand pointers in an object oriented paradigm, but it should be noted thatthe principles of the invention are not limited to this. Otherdescriptions that allow for a similar exchange of data and calculationof shapes and positions of segments and fixture points, would fallwithin the scope of the invention. However, it will be understood fromthe following presentation that an object oriented language is apreferable means of creating the data structure.

[0032] It should also be noted that the following description includes acertain redundancy regarding pointers. It is not necessary for allobjects that are pointed to by another object to include a pointerpointing back at that other object. Also, it is not strictly necessaryfor two adjacent segments to point at each other, since they will beconnected by the fixture point they have in common. However, increasingthe number of pointers will reduce the number of searches that must bedone when going back and forth through the data structure e.g. whenupdating the model, something that will facilitate a rapid update duringreal time simulation. It would be sufficient, however, to include enoughpointers to connect all the objects of the model. It is preferred toinclude at least pointers from all segment objects to connected segmentsand fixture points and pointers from fixture point objects to connectedtissue objects (or whatever other external geometrical objects areincluded in the simulation).

[0033] The other parts of the model could be constructed according totraditional scene graph theory, as is well known in the art.

[0034] Since the invention as such is limited to the description offixture points and segments, these are drawn with bold lines in FIG. 3a,whereas additional objects with which they interact but which are notpart of the invention are drawn with finer lines. The reference numberscorrespond with those in FIG. 2 for corresponding objects.

[0035] Going from the top of FIG. 3a, there is first an objectrepresenting the tool 14. This object contains at least one pointerpointing to the needle object 12. In the same way the needle object 12contains a pointer pointing to the tool object 14. The needle 12 and thefirst segment 30 of the thread 10 are connected by the first fixturepoint 20. As illustrated, all these objects may contain pointerspointing to each other.

[0036] The first segment 30 of the thread 10 is a free segment. Thissegment is connected to the second segment 32 of the thread 10 by asecond fixture point 22. The second segment 32 is an embedded segment,which again is connected to a free segment 34 by a third fixture point24. Finally there is another embedded segment 36 connected to the secondfree segment 34 by a fourth fixture point 26.

[0037] The fixture points 22, 24, 26 that are connecting embeddedsegments 32, 36 also have pointers pointing to tissue objects 16 a, 16b, 18 a and vice versa.

[0038] The sequence of segments illustrated in FIG. 3a, (free segment,embedded segment, free segment, embedded segment) is typical, but notmandatory. As already noted, two free segments could be connected toeach other, and the same could two embedded segments.

[0039] The geometrical description of the various objects, particularlythe segments, can be contained in the objects themselves, but preferablythey are described in separate objects pointed to by the objects theydescribe. Hence, each segment, whether free or embedded, contains anadditional pointer pointing to a geometrical object, or a curve object.

[0040] In addition to the references between the objects themselves, theobjects contain various data and functions and/or references toadditional objects containing data and functions. The following is amore complete description of the data objects included in the datastructure. Reference is made to FIG. 3b, which shows the generalstructure of the data model including relations between the variousobject types. Again it should be noted that it is not necessary toinclude all the pointers illustrated, as described above.

[0041] Segments can be of different types according to the roles theyplay in the simulation. The difference between these can be expressedinternally in the respective object, or externally, as a result of whatother data objects they point to. The two fundamental types of segments,embedded segments and free segments, can be of the same object type, butembedded segments will be defined by referring to fixture points, thatare attached to the surfaces of other objects and by referring to curveobjects that define a straight line between these fixture points.However the segment objects are defined, some data is common to allsegment objects. In a preferred embodiment of the invention thisincludes pointers to two fixture points, one at each end of the segment,pointers to the neighboring segments, if they exist, a pointer to acurve object describing the geometry of the segment, a variablecontaining the span of the segment, i.e. the distance between the twofixture points at the respective ends of the segment and a variablecontaining the length of the segment measured along the thread. Thelength is a result of a bookkeeping process, so that the length isincreased every time the segment receives more length from an adjacentsegment and is decreased every time the segment yields length to anadjacent segment. Span is calculated from information received from therespective fixture points. The necessary functions for calculating andupdating the values of these two variables are preferably included inthe segment object as local functions.

[0042] The total length of the thread will be the sum of the length ofall the segments. Unless the thread is described with a certainelasticity, the total length of the thread will be constant, but onesegment may give up length to an adjacent segment as described below.

[0043] Fixture points can be shared by two segments, and thereby definea topological connection. A fixture point may also represent the freeend of the thread and only be connected to one segment. Normally, thefixture point will also be connected to an additional object. In oursurgery example this additional object will usually represent tissue,but may also represent a surgical tool. A fixture point may also beshared by only one segment of the thread and another object, such as aneedle or a tool.

[0044] Fixture point objects generally contain the following data: Twopointers pointing to the segments connected by the fixture point, ifthey are present (only one has to be), pointers to any other geometricalobject to which the fixture point is attached, such as a tool, a needleor tissue, and a variable containing the position of the fixture point.In addition the fixture point object preferably contains variablescontaining the tangents of the segments connected by the fixture point.If the two segments are both free, these variables will normally containthe same values, since the thread is considered tangentially continuous.In principle, however, the thread does not have to be tangentiallycontinuous, and normally it will not be in cases where one of thesegments is embedded.

[0045] The fixture points define connections that serve to exchange databetween objects. If one fixture point is moved, the result may be thatother fixture points are moved or that the length of the varioussegments is changed. The fixture points serve as reference points forthis exchange of data, which may be calculated recursively orsimultaneously. This is described in further detail below.

[0046] Curve objects are objects referred to by segments. For eachsegment there is one curve object defining the geometrical shape of thatsegment. This curve object contains the numerical description of thesegment, including shape parameters, such as flexibility and gravityvector, and shape calculation algorithms. The curve object receivesinformation from the segment and the fixture points, including span,length and fixture point positions, and based on this input, the shapeis calculated and stored in the curve object. The curve object may alsocontain a choice of algorithms and parameters in order to balance theneed for speed and accuracy.

[0047] In a preferred embodiment the curve is implemented as a B-spline,but other formats could be used, such as polygon segments, implicitdescription, analytical segments, etc.

[0048] There are two basic operations that can be performed on the datastructure. These are an update of the thread shape and an update of thethread topology (i.e. the number of segments and their sequence). Thefollowing is a general description of these operations, illustrating theflexibility of the invention. It should be pointed out, though, that alarge number of different algorithms could be implemented forcalculating the shape of individual segments, for distributing lengthand force along the thread, for exchanging information between thethread and the environment etc. The following description will notattempt to cover all such possibilities, as they would representdifferent uses to which the invention could be applied rather than theinvention itself.

[0049] First the update of the thread shape as the result of themovement of a fixture point will be described. In this situation thetopology of the model is not changed. The thread is composed of the samenumber and types of segments before and after the update, no additionalfixture points have been introduced, and no additional pointers to otherobjects have been introduced.

[0050] For convenience this description refers to FIG. 3a and startswith the movement of the fixture point 20 at the end of the thread 10,where it is connected to a needle 12. It would also be possible to startwith the movement of a fixture point somewhere in the middle of thethread, something that would result in an update of the shape of thethread in two directions. Also, again for convenience, the descriptionwill be based on a simplified system where force is not taken intoconsideration, and where length is not exchanged with adjacent segmentsuntil, when tightening the thread, ratio between span and length isincreased until it equals 1 (i.e. there is no more slack between thefixture points). Slackening of the thread could be described as apartial return to the previous situation. The data structure and methodof the invention does, however, allow for a more sophisticated algorithmincluding force, elasticity of the thread and other objects (tissue)etc.

[0051] The various functions for exchanging length from one object toanother and for moving fixture points will preferably be implemented ineach object. When one fixture point is moved, update of the otherobjects is then done in a recursive manner starting from the fixturepoint that is moved and progressing along the thread. If the fixturepoint that is moved is not at one of the ends of the thread, this updatewill go in both directions of the thread. The update should beadministered globally however, e.g. by way of an administrationalgorithm in the fixture point that is moved, in order to ensure that noillegal updates are performed (such as one segment assuming that itreceives more length from following segments than actually is available)and so that updates do not travel back and forth along the threadwithout terminating.

[0052] When the first fixture point 20 is moved so far that the span ofthe first segment 30 exceeds its length, the segment must receive lengthfrom other segments. The following segment 32 is embedded, and will notchange neither span nor length. This means that all the length segment30 receives from segment 32, segment 32 will immediately receive fromsegment 34. Segment 30 will only receive enough length for its length toequal its span, in other words it will be tight. The curve objectpointed to by segment 30 will calculate the new shape of segment 30 as astraight line. Segment 32 will not be changed. Segment 34 will have thesame span, but its length will be reduced by the same amount as thatwith which segment 30 is increased. The curve object pointed to bysegment 34 will recalculate the shape of segment 34 based on the newlength.

[0053] If all the segments are tight (or if the model includes frictionand force), an additional stretching of segment 30 through movement offixture point 20 will result in an update of the position of fixturepoint 22, which will be moved in a direction based on the directions ofthe two segments 30 and 34 (if both segments 30 and 34 are tight, thefixture points 22 and 24 will be moved in a direction somewhere betweenthe directions towards the fixture points at the opposite ends ofsegments 30 and 34, respectively). This will result in the movement offixture point 24 and also in an update of the shape of the tissue object16. The movement of the fixture points and the update of the tissueobject will decrease the span of free segments connected to the fixturepoints being moved. The segments will remain tight, however, and thelength by which the respective segments are reduced will be passed on tosegment 30 so that the total length of the thread remains constant.

[0054] The new position of fixture point 24 will reduce the span ofsegment 34, but since segment 30 is still tight, segment 34 will notslacken. Instead it will give its extra length to segment 32 whichimmediately passes it on to segment 30. Every time fixture points aremoved and length is exchanged, the relevant curve objects update thecurve shape of the relevant segment. Whether the update is performed asa recursive update along the thread or as a simultaneous update of allthe involved objects is a matter of implementation. The important pointis to keep the length of the thread constant (unless elasticity isintroduced), and to exchange information between objects as a result ofthe topology defined by the fixture points.

[0055] The data structure allows for more sophisticated updatealgorithms that include force along the tangents of the segments in thefixture points, and friction. Rules included in the update algorithm cane.g. distribute the applied force into tightening the segment, movingfixture points and overcoming friction (i.e. gaining length from thenext segment).

[0056] The operations described above change the parameters of thesegments, such as length, span and fixture point position. According tothe invention the shape of the individual segments can be calculatedindependently after these conditions have been established. This isbecause segments are only influenced by other objects at theirrespective ends. In other words, the shape of one segment does notinfluence the shape of any other segment. The problem of calculating theshape can be formulated as an optimization problem of minimizing thepotential energy of each segment. This can be done as:

[0057] min J(y)=½∫β|y″||y″|−fy ds

[0058] subject to y in K, where

[0059] K={y|y in H² (0,L;R³), |y′(s)|=1 on [0,L],

[0060] plus boundary conditions:

[0061] y(0)=y0, y(L)=y1, y′(0)=y0′, y′(L)=y1′

[0062] The integral is taken over the length of the segment, and where

[0063] J(y) is an expression of the potential energy of the thread,

[0064] y is the unknown curve segment with s as parameter,

[0065] y0, y1 are boundary positions in Euclidian 3-space,

[0066] y0′, y1′ are boundary unit tangents in Euclidian 3-space,

[0067] L is the length of the segment,

[0068] β is the flexibility of the segment,

[0069] f is an external force, such as gravity,

[0070] R³ is the Euclidean 3-space, and

[0071] H² is the Sobolev space of distributions with quadraticallyintegrable derivatives of order less or equal to 2.

[0072] The values of y0 and y1 are given by the positions of the fixturepoints, and y0′ and y1′ will normally be defined by either the directionof an adjacent embedded sequence, the direction of an attached tool, orthese will be overridden e.g. because of a tangential discontinuity dueto the segment being too tight.

[0073] One solution to this problem is described in “AugmentedLagrangian and Operator-Splitting Methods in Nonlinear Mechanics”, byRoland Glowingski and Patrick Le Tallec, Society for Industrial andApplied Mathematics, Philadelphia, 1989, p 268, which is herebyincorporated by reference.

[0074] It should be noted that the preferred element basis according tothe invention (B-splines) is different from the one described.

[0075] The data structure according to the invention is very flexibleand allows easy update also of the topology of the thread, i.e. numberof segments and their sequence.

[0076] Segments can be added or deleted by exchanging informationbetween them and adding or deleting fixture points. For instance, if atool grabs the thread in the middle of a free segment, a new fixturepoint would be added, as well as a new segment. The new segment wouldreceive data regarding its length from the original segment, and newsegment spans would be calculated. The two segments would be connectedby the new fixture point.

[0077]FIG. 4 illustrates an example of the step by step update of themodel during a change in the topology of the thread, that is in theordering and number of segments. The example is that of the process ofpulling a thread through an other object, such as tissue, in a sewingsimulation. The example will not consider functions for hit detectionbetween needle and tissue or calculation of deformation of the tissuebecause of the thread, since these interactions are outside the scope ofthe invention.

[0078] The update of the data structure will comprise two steps, andthese are the same when the thread enters and leaves the tissue.

[0079] Before the thread enters the tissue, the situation is asillustrated in FIG. 4a, with a thread segment attached to a needle byway of a fixture point. In a first step, when the needle has passedthrough the tissue wall, as in FIG. 4b and 4 d respectively, the fixturepoint is moved to the hit point, and the shape of the thread is updatedas described above. There is now a gap between the needle and thefixture point. In a second step, a straight (or tight) segment is addedfrom the fixture point at the hit point to the end of the needle. Thisis illustrated in FIG. 4c, where the new segment is embedded, and inFIG. 4e, where the new segment is a free segment.

[0080] In both cases the new segment receives length from the othersegments and the shape of the respective segments are updated asdescribed above.

[0081] The examples and embodiments described above are intended toexplain the principles of the invention and its application to aparticular real world problem. A number of modifications to thedescribed examples will fall within the scope of the invention. Forinstance the invention could be implemented on a general purposecomputer or a dedicated simulation system. It could be connected togeneral input and/or output means such as a mouse and a computerdisplay, or to specialized input and output devices such as toolsimulators or special purpose control means and stereo display goggles.The exact number of pointers, variables and functions contained in thevarious objects can be chosen in various ways, and the invention couldbe applied to simulation of a number of different simulations ofsituations involving threads, sutures, cables, wires or the like, andall such alternatives fall within the scope of the invention as definedby the appended claims.

1. Method for describing a thread as a geometric object in a threedimensional computer graphics system, characterized by generating a setof fixture points defining points in space through which the threadpasses, generating a set of one or more segments representing the threadbetween adjacent fixture points, linking each segment to a pair offixture points, one at each end of the respective segment, anddescribing the geometrical properties of each segment.
 2. Methodaccording to claim 1, characterized in that the segments are of twotypes, embedded segments that describe the thread passing through another geometric object, and free segments that describe segments of thethread that can only interact with other geometrical objects at theirends.
 3. Method according to claim 2, characterized in that the shape ofan embedded segment is a straight line between fixture points at thesurface of the geometric object through which the thread passes. 4.Method according to claim 1, characterized in that the shape of one ormore segments is calculated as an approximation to the solution of theoptimization problem of minimizing the potential energy of each segment.5. Method according to claim 4, characterized in that the potentialenergy of a segment is expressed as J(y)=½∫β|y″||y″|−fy ds subject to yin K, where K={y|y in H ² (0,L;R ³), |y′(s)|=1 on [0,L], y(0)=y 0,y(L)=y 1, y′(0)=y 0′, y′(L)=y 1′} where the integral is taken over theinterval [0,L], and where y is the unknown curve segment, y0, y1 areboundary positions in Euclidian 3-space, y0′, y1′ are boundary unittangents in Euclidian 3-space, L is the length of the segment, β is theflexibility of the segment, f is an external force, such as gravity, R³is the Euclidean 3-space, and H² is the Sobolev space of distributionswith quadratically integrable derivatives of order less or equal to 2.6. Method according to claim 1, characterized in that the geometricaldescription of any segment is done through a reference to a curvedefinition including the numerical description of the shape of therespective segment.
 7. Method according to claim 6, characterized inthat the thread is described in an object oriented computer language sothat each fixture point is described as an object comprising at leasttwo pointers pointing to the segments adjacent to the fixture point, ifpresent, pointers to any other geometrical object to which the fixturepoint is attached, a variable containing the position of the fixturepoint, each segment is described as an object comprising at least twopointers pointing to the fixture points at each end of the segment,two-pointers pointing to the neighboring segments, if present, onepointer pointing to a curve object containing the numerical descriptionof the shape of the segment, each curve definition is described as acurve object comprising at least shape parameters, shape calculationalgorithms.
 8. Method according to claim 7, characterized in that eachsegment object also comprises a variable containing the span of thesegment, defined as the distance between the two fixture points pointedto, and a variable containing the length of the segment, measured alongthe thread between the two fixture points pointed to.
 9. Methodaccording to claim 7, characterized in that each fixture point objectalso comprises a variable containing values defining, the tangent(s) ofthe segments pointed to by the fixture point object at the position ofthe fixture point.
 10. Method according to claim 7, characterized inthat the shape parameters of the curve objects include flexibility andgravity vector, and that the shape calculation algorithms includefunctions for making geometrical calculations based on length and spaninformation, fixture point positions and endpoint tangents received fromthe corresponding segment object as well as said shape parameters. 11.Method according to claim 2, characterized in that interaction betweenany free segment and any other object is described by introducingadditional fixture points that divides said free segment into two freesegments.
 12. Method according to claim 1, characterized in thatmovement of the thread is described by moving one fixture point andrecalculating the shape and length of the segments between adjacentfixture points, starting from the fixture point that is moved and goingrecursively along the length of the thread.
 13. Method according toclaim 1, characterized in that the length of the thread-is kept constantby making corresponding changes of the length of each respective segmentso that any change in the length of one segment influences the length ofthe following segment in a recursive manner.
 14. Method according toclaim 1, characterized in that update of the model is performed in aframewise manner such that in a first step new data is introduceddescribing a change to the model, in a second step the model is updatedbased on the new data, and in a third step the updated model isvisualized as a frame in the computer graphics system.
 15. Methodaccording to one of the previous claims, characterized in that thethread represents a surgical suture, and the geometrical objectsrepresent tissue of a human body in a surgical simulation system. 16.Simulation system for simulating the behavior of a thread interactingwith geometrical objects in a three dimensional computer graphicssystem, characterized in that the system comprises an input interfacefor receiving control signals representing manipulation of thesimulation system, storage means wherein is stored a set of instructionsand a set of initial data, a processor capable of, based on instructionsstored on said storage means, generating a three dimensional numericalmodel of said thread and said geometrical objects, capable of updatingthe three dimensional numerical model based on additional instructionson said storage means and control signals received from said inputinterface, and capable of generating a video representation of the threedimensional numerical model, and an output interface for sending saidvideo representation to a display; wherein the initial data on saidstorage means represent an initial state of the three dimensionalnumerical model, and the instructions on said storage means at leastinclude instructions for making the processor generate a set of fixturepoints defining points in space through which the thread passes,generate a set of one or more segments representing the thread betweenadjacent fixture points, link each segment to a pair of fixture points,one at each end of the respective segment, describe the geometricalproperties of each segment, generate a video representation of theresulting three dimensional numerical model, and send the generatedvideo representation to the output interface.
 17. Simulation systemaccording to claim 16, characterized in that the segments are of twotypes, embedded segments that describe the thread passing through another geometric object, and free segments that describe segments of thethread that can only interact with other geometrical objects at theirends.
 18. Simulation system according to claim 17, characterized in thatthe shape of an embedded segment is a straight line between fixturepoints at the surface of the geometric object through which the threadpasses.
 19. Method according to claim 16, characterized in that theshape of one or more segments are calculated as an approximation to thesolution of the optimization problem of minimizing the potential energyof each segment.
 20. Method according to claim 19, characterized in thatthe potential energy of a segment is expressed as J(y)=½∫β|y″||y″|−fy dssubject to y in K, where K={y|y in H² (0,L;R ³), |y′(s)|=1 on [0, L],y(0)=y 0, y(L)=y 1, y′(0)=y 0′, y′(L)=y 1′} where the integral is takenover the interval [0,L], and where y is the unknown curve segment, y0,y1 are boundary positions in Euclidian 3-space, y0′, y1′ are boundaryunit tangents in Euclidian 3-space, L is the length of the segment, β isthe flexibility of the segment, f is an external force, such as gravity,R³ is the Euclidean 3-space, and H² is the Sobolev space ofdistributions with quadratically integrable derivatives of order less orequal to
 2. 21. Simulation system according to claim 16, characterizedin that the geometrical description of any segment is done through areference to a curve definition including the numerical description ofthe shape of the respective segment.
 22. Simulation system according toclaim 21, characterized in that the instructions on said storage meansare in an object oriented computer language so that each fixture pointis described as an object comprising at least two pointers pointing tothe segments adjacent to the fixture point, if present, pointers to anyother geometrical object to which the fixture point is attached, avariable containing the position of the fixture point, each segment isdescribed as an object comprising at least two pointers pointing to thefixture points at each end of the segment, two pointers pointing to theneighboring segments, if present, one pointer pointing to a curve objectcontaining the numerical description of the shape of the segment, eachcurve definition is described as a curve object comprising at leastshape parameters, shape calculation algorithms.
 23. Simulation systemaccording to claim 22, characterized in that each segment object alsocomprises a variable containing the span of the segment, defined as thedistance between the two fixture points pointed to, and a variablecontaining the length of the segment, measured along the thread betweenthe two fixture points pointed to.
 24. Simulation system according toclaim 22, characterized in that each fixture point object also comprisesa variable containing values defining the tangent(s) of the segmentspointed to by the fixture point object at the position of the fixturepoint.
 25. Simulation system according to claim 22, characterized inthat the shape parameters of the curve objects include flexibility andgravity vector, and that the shape calculation algorithms includefunctions for making geometrical calculations based on length and spaninformation, fixture point positions and endpoint tangents received fromthe corresponding segment object as well as said shape parameters. 26.Simulation system according to claim 17, characterized in thatinteraction between any free segment and any other object is describedby introducing additional fixture points that divides said free segmentinto two free segments.
 27. Simulation system according to claim 16,characterized in that movement of the thread is described by moving onefixture point based on input information received over the inputinterface and recalculating the shape and length of the segments betweenadjacent fixture points, starting from the fixture point that is movedand going recursively along the length of the thread.
 28. Simulationsystem according to claim 16, characterized in that the length of thethread is kept constant by making corresponding changes of the length ofeach respective segment so that any change in the length of one segmentinfluences the length of the following segment in a recursive manner.29. Simulation system according to claim 16, characterized in thatupdate of the model is performed in a framewise manner such that in afirst step new data is introduced describing a change to the model, in asecond step the model is updated based on the new data, and in a thirdstep the updated model is visualized as a frame in the computer graphicssystem.
 30. Simulation system according to one of the claims 16-29,characterized in that the thread represents a surgical suture, and thegeometrical objects represent tissue of a human body in a surgicalsimulation system.
 31. Computer program product comprising programinstructions embodied on a computer readable medium for, when loadedinto a computer, causing the computer to perform the steps of any of theclaims 1 to
 15. 32. Propagated signal wherein is carried information onprogram instructions in computer readable form for, when loaded in acomputer, causing the computer to perform the steps of any of the claims1 to 15.